﻿
namespace Xenta.Enums
{
    /// <summary>
    /// Defines the author sort options.
    /// </summary>
    public enum PublicationAuthorSortBy : byte
    {
        /// <summary>
        /// Order by identifier.
        /// </summary>
        ID,

        /// <summary>
        /// Order by account email.
        /// </summary>
        AccountEmail,

        /// <summary>
        /// Order by account email.
        /// </summary>
        AccountUsername,

        /// <summary>
        /// Order by publication count.
        /// </summary>
        PublicationCount,

        /// <summary>
        /// Order by rating.
        /// </summary>
        RatingAverage,

        /// <summary>
        /// Order by creation date.
        /// </summary>
        CreatedOn
    }

    /// <summary>
    /// Defines the publication sort options.
    /// </summary>
    public enum PublicationSortBy : byte
    {
        /// <summary>
        /// Order by identifier.
        /// </summary>
        ID,

        /// <summary>
        /// Order by code.
        /// </summary>
        Code,

        /// <summary>
        /// Order by review count.
        /// </summary>
        RatingCount,

        /// <summary>
        /// Order by rating.
        /// </summary>
        RatingAverage,

        /// <summary>
        /// Order by comment count.
        /// </summary>
        CommentCount,

        /// <summary>
        /// Order by publishing date.
        /// </summary>
        PublishedOn,

        /// <summary>
        /// Order by creation date.
        /// </summary>
        CreatedOn
    }

    /// <summary>
    /// Defines the tag sort options.
    /// </summary>
    public enum PublicationTagSortBy : byte
    {
        /// <summary>
        /// Order by identifier.
        /// </summary>
        ID,

        /// <summary>
        /// Order by tag weight.
        /// </summary>
        Weight,

        /// <summary>
        /// Order by creation date.
        /// </summary>
        CreatedOn
    }
}
